/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controller;

import ejb.FabricaRequisicoes;
import java.util.List;
import javax.naming.NamingException;
import model.Consulta;
import model.Produto;
import model.TipoConsulta;
import stateful.ProdutoControleRemote;

/**
 *
 * @author Rodrigo Felipe
 */
public class Cadastro {

    public void incluir() throws NamingException {
        Produto p1 = new Produto();
        p1.setDescricao("Produto Novo");
        p1.setPreco(2.5);
        p1.setQtdEstoque(150);

        ProdutoControleRemote produtoRemote = new FabricaRequisicoes().novoProdutoRemote();
        produtoRemote.incluir(p1);
    }

    public void consultarTodos() throws NamingException {
        Consulta consulta = new Consulta();
        consulta.setTipo(TipoConsulta.TODOS);
        this.consultar(consulta);
    }

    public void consultarCodigo() throws NamingException {
        Consulta consulta = new Consulta();
        consulta.setTipo(TipoConsulta.CODIGO);
        consulta.setParametro("2");
        this.consultar(consulta);
    }

    public void consultarDescricao() throws NamingException {
        Consulta consulta = new Consulta();
        consulta.setTipo(TipoConsulta.DESCRICAO);
        consulta.setParametro("Barra de chocolate");
        this.consultar(consulta);
    }

    public void consultar(Consulta consulta) throws NamingException {
        ProdutoControleRemote produtoRemote = new FabricaRequisicoes().novoProdutoRemote();
        List<Produto> listaProdutos = produtoRemote.consultar(consulta);
        for (Produto produto : listaProdutos) {
            System.out.println("PRODUTO: " + produto.getDescricao());
        }
    }

    public void alterar() throws NamingException {
        Consulta consulta = new Consulta();
        consulta.setTipo(TipoConsulta.CODIGO);
        consulta.setParametro("2");

        ProdutoControleRemote produtoRemote = new FabricaRequisicoes().novoProdutoRemote();
        List<Produto> listaProdutos = produtoRemote.consultar(consulta);
        Produto produto = listaProdutos.get(0);

        produto.setDescricao("Produto alterado");

        System.out.println(produtoRemote.alterar(produto));
    }

}
